package com.njym.payment.alipay.properties;

import com.alipay.demo.trade.model.GoodsDetail;
import com.njym.annotation.ExistCheck;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import java.util.ArrayList;

/**
 * @program: PrepayParams
 * @description: 扫码付请求参数
 * @author: yh
 * @create: 2018-08-29 21:34
 **/
public class PrepayParams {
    @NotBlank(message = "orgId不能为空")
    private String orgId;

    @ApiModelProperty(value = "渠道ID", name = "channelId", required = true, example = "1034683401866588162")
    @NotBlank(message = "channelId不能为空")
    private String channelId;

    @ApiModelProperty(value = "系统订单号", name = "outTradeNo", required = true, example = "1111111141111")
    @NotBlank(message = "outTradeNo不能为空")
    @ExistCheck(message = "订单号已存在，请重新生成！")
    private String outTradeNo;

    @ApiModelProperty(value = "病人卡号", name = "cardNo", required = false, example = "12345678", allowEmptyValue = true)
    private String cardNo;

    @ApiModelProperty(value = "病人姓名", name = "name", required = false, example = "测试人1", allowEmptyValue = true)
    private String name;

    @ApiModelProperty(value = "标题", name = "subject", required = true, example = "测试标题")
    private String subject;

    @ApiModelProperty(value = "描述", name = "describe", required = true, example = "测试描述")
    private String describe;

    @ApiModelProperty(value = "订单总金额", name = "totalAmount", required = true, example = "1.00")
    @NotBlank(message = "交易金额不能为空")
    private String totalAmount;

    @ApiModelProperty(value = "卖家支付宝账号ID", name = "sellerId", required = false, example = "")
    private String sellerId;

    @ApiModelProperty(value = "商户操作员编号", name = "operatorId", required = true, example = "111111111")
    private String operatorId;

    @ApiModelProperty(value = "操作员姓名", name = "operatorName", required = true, example = "操作员1")
    private String operatorName;

    private String outRefundNo;

    @ApiModelProperty(value = "有效时间", name = "expireTime", required = true, example = "15m")
    private String expireTime;

    @ApiModelProperty(value = "商品列表", name = "goodsDetailList", required = false, dataType = "ArrayList")
    private ArrayList<GoodsDetail> goodsDetailList;

    public String getOutRefundNo() {
        return outRefundNo;
    }

    public void setOutRefundNo(String outRefundNo) {
        this.outRefundNo = outRefundNo;
    }

    public String getOrgId() {
        return orgId;
    }

    public void setOrgId(String orgId) {
        this.orgId = orgId;
    }

    public String getChannelId() {
        return channelId;
    }

    public void setChannelId(String channelId) {
        this.channelId = channelId;
    }

    public String getOutTradeNo() {
        return outTradeNo;
    }

    public void setOutTradeNo(String outTradeNo) {
        this.outTradeNo = outTradeNo;
    }

    public String getCardNo() {
        return cardNo;
    }

    public void setCardNo(String cardNo) {
        this.cardNo = cardNo;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getDescribe() {
        return describe;
    }

    public void setDescribe(String describe) {
        this.describe = describe;
    }

    public String getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(String totalAmount) {
        this.totalAmount = totalAmount;
    }

    public String getSellerId() {
        return sellerId;
    }

    public void setSellerId(String sellerId) {
        this.sellerId = sellerId;
    }

    public String getOperatorId() {
        return operatorId;
    }

    public void setOperatorId(String operatorId) {
        this.operatorId = operatorId;
    }

    public String getOperatorName() {
        return operatorName;
    }

    public void setOperatorName(String operatorName) {
        this.operatorName = operatorName;
    }

    public ArrayList<GoodsDetail> getGoodsDetailList() {
        return goodsDetailList;
    }

    public String getExpireTime() {
        return expireTime;
    }

    public void setExpireTime(String expireTime) {
        this.expireTime = expireTime;
    }

    public void setGoodsDetailList(ArrayList<GoodsDetail> goodsDetailList) {
        this.goodsDetailList = goodsDetailList;
    }
}
